Перем ЮнитТест;

#Область ОбработчикиСобытийМодуля

Функция Версия() Экспорт
	Возврат "1.0";
КонецФункции

Функция ПолучитьСписокТестов(МенеджерТестирования) Экспорт
	
	ЮнитТест = МенеджерТестирования;

	СписокТестов = Новый Массив;
	СписокТестов.Добавить("ТестСуществование");
	СписокТестов.Добавить("TestExistance");
	СписокТестов.Добавить("ТестВставитьЭлемент");
	СписокТестов.Добавить("ТестДобавитьЭлемент");
	СписокТестов.Добавить("ТестОчистить");
	СписокТестов.Добавить("ТестУдалитьИндекс");
	СписокТестов.Добавить("ТестУдалитьЭлемент");
	СписокТестов.Добавить("ТестУстановитьЭлемент");
	
	Возврат СписокТестов;

КонецФункции

#КонецОбласти

#Область ОбработчикиТестирования

Процедура ТестСуществование() Экспорт

	СхемаXML = Новый СхемаXML;
	Коллекция = СхемаXML.Содержимое;

	ЮнитТест.ПроверитьРавенство(ТипЗнч(Коллекция), Тип("СписокКомпонентXS"));
	ЮнитТест.ПроверитьРавенство(Коллекция.Количество(), 0);
	
КонецПроцедуры

Procedure TestExistance() Export

	Schema = New XMLSchema;
	Collection = Schema.Content;

	ЮнитТест.ПроверитьРавенство(TypeOf(Collection), Type("XSComponentList"));
	ЮнитТест.ПроверитьРавенство(Collection.Count(), 0);

EndProcedure

Процедура ТестВставитьЭлемент() Экспорт

	СхемаXML = Новый СхемаXML;
	Коллекция = СхемаXML.Содержимое;

	Элемент = Новый ОбъявлениеЭлементаXS;

	Коллекция.Вставить(0, Элемент);

	ЮнитТест.ПроверитьРавенство(Коллекция.Количество(), 1);
	ЮнитТест.ПроверитьИстину(Коллекция.Содержит(Элемент));
	ЮнитТест.ПроверитьРавенство(Коллекция.Получить(0), Элемент);
	
КонецПроцедуры

Процедура ТестДобавитьЭлемент() Экспорт

	СхемаXML = Новый СхемаXML;
	Коллекция = СхемаXML.Содержимое;

	Элемент = Новый ОбъявлениеЭлементаXS;

	Коллекция.Добавить(Элемент);

	ЮнитТест.ПроверитьРавенство(Коллекция.Количество(), 1);
	ЮнитТест.ПроверитьИстину(Коллекция.Содержит(Элемент));
	ЮнитТест.ПроверитьРавенство(Коллекция.Получить(0), Элемент);
	
КонецПроцедуры

Процедура ТестОчистить() Экспорт

	СхемаXML = Новый СхемаXML;
	Коллекция = СхемаXML.Содержимое;

	Элемент = Новый ОбъявлениеЭлементаXS;

	Коллекция.Добавить(Элемент);

	ЮнитТест.ПроверитьРавенство(Коллекция.Количество(), 1);

	Коллекция.Очистить();

	ЮнитТест.ПроверитьРавенство(Коллекция.Количество(), 0);
	
КонецПроцедуры

Процедура ТестУдалитьИндекс() Экспорт

	СхемаXML = Новый СхемаXML;
	Коллекция = СхемаXML.Содержимое;

	Элемент = Новый ОбъявлениеЭлементаXS;

	Коллекция.Добавить(Элемент);

	ЮнитТест.ПроверитьРавенство(Коллекция.Количество(), 1);

	Коллекция.Удалить(0);

	ЮнитТест.ПроверитьРавенство(Коллекция.Количество(), 0);
	
КонецПроцедуры

Процедура ТестУдалитьЭлемент() Экспорт

	СхемаXML = Новый СхемаXML;
	Коллекция = СхемаXML.Содержимое;

	Элемент = Новый ОбъявлениеЭлементаXS;

	Коллекция.Добавить(Элемент);

	ЮнитТест.ПроверитьРавенство(Коллекция.Количество(), 1);

	Коллекция.Удалить(Элемент);

	ЮнитТест.ПроверитьРавенство(Коллекция.Количество(), 0);
	
КонецПроцедуры

Процедура ТестУстановитьЭлемент() Экспорт

	СхемаXML = Новый СхемаXML;
	Коллекция = СхемаXML.Содержимое;

	Элемент = Новый ОбъявлениеЭлементаXS;

	Коллекция.Вставить(0, Элемент);

	ЮнитТест.ПроверитьРавенство(Коллекция.Количество(), 1);
	ЮнитТест.ПроверитьИстину(Коллекция.Содержит(Элемент));
	ЮнитТест.ПроверитьРавенство(Коллекция.Получить(0), Элемент);

	Элемент2 = Новый ОбъявлениеЭлементаXS;
	Коллекция.Установить(0, Элемент2);

	ЮнитТест.ПроверитьРавенство(Коллекция.Количество(), 1);
	ЮнитТест.ПроверитьЛожь(Коллекция.Содержит(Элемент));
	ЮнитТест.ПроверитьИстину(Коллекция.Содержит(Элемент2));
	ЮнитТест.ПроверитьНеРавенство(Коллекция.Получить(0), Элемент);
	ЮнитТест.ПроверитьРавенство(Коллекция.Получить(0), Элемент2);
	
КонецПроцедуры

#КонецОбласти